NOTEDEMO TDBOutline can be used to display, manipulate and save the hierarchic structure of recursively related (self-referencing) data. Recursively related tables are used for many purposes. See the children of this node for details. TDBOutline is a descendant of the TOutline Class, inheriting all TOutline's properties, methods and events. TDBOutline has additional properties, methods and events that provide the following: Automatic loading of recursively related data into the outline, preserving the hierarchic structure. One call to method LoadFromDataSet is all it takes to populate the outline with all the table data. data contained in a database. TDBOutline is a descendant of the TOutline Class, inheriting all TOutline's properties, methods and events. TDBOutline has additional properties, methods and events that provide the following: Automatic loading of non-recursive data as top-level nodes. This allows quick loading of table data into the outline structure, allowing the future addition of child nodes programatically.table data. data contained in a database. TDBOutline is a descendant of the TOutline Class, inheriting all TOutline's properties, methods and events. TDBOutline has additional properties, methods and events that provide the following: Automatic drag and drop facilities that move a node and all its children to be children of the dropped-on node. Dragging a node off the outline control will cause the outline to scroll, enabling drag and drop to a node not visible on the same page as the from-node. A default Move confirmation message can enabled, disabled or overridden with your own custom message. al properties, methods and events that provide the following: Automatic record-pointer synchronization -- as you navigate through the outline, TDBOutline will move the record pointer in the table to the associated record. It will even search for the appropriate index to enable FindKey synchronization. page as the from-node. A default Move confirmation message can enabled, disabled or overridden with your own custom message. al properties, methods and events that provide the following: Automatic update of recursive field upon drag and drop -- when a node is dropped on another node, the dropped-on node's key field will be written to the dropped node's recursive field. the appropriate index to enable FindKey synchronization. page as the from-node. A default Move confirmation message can enabled, disabled or overridden with your own custom message. al properties, methods and events that provide the following: Applies to TDBOutline Declaration property DataAutoDrag: Boolean; Description The DataAutoDrag property determines whether the outline control, when dragging, will automatically scroll when a node is dragged outside the controls boundaries. These are the possible values: Value Meaning If True is selected, and drag mode is entered, then when a node is dragged outside the boundaries of the control, the control will scroll in the appropriate direction. False If False is selected and drag mode is entered, then scrolling will not be automatic. Automatic outline synchronization -- as you navigate through the dataset, you can cause the selected outline to synchronize with the selected dataset record by calling a single method. ally organized data contained in a database. TDBOutline is a descendant of the TOutline Class, inheriting all TOutline's properties, methods and events. TDBOutline has additional properties, methods and events. See the children of this node for details. Applies to TDBOutline Declaration property DataAutoSynch: Boolean; Description The DataAutoSynch property determines whether the record pointer of the dataset loaded into the outline control will move to the record corresponding to the selected outline node whenever the selected outline node changes. Also, DataAutoSynch will determine if the record corresponding to a dragged-from node will have its DataFieldRecursive field updated with the value of the dragged-to node's corresponding data record's DataField field. These are the possible values: Value Meaning If True is selected, and a new outline node is selected, the record pointer of the outline's underlying dataset will be moved to the record represented by the outline node. If True is selected and node A is dragged and dropped on node B, then node A's data record will have its DataFieldRecursive updated by node B's DataField. False If False is selected the record pointer of the outline's underlying dataset will not be synchronized with the selected node. If False is selected, and node A is dragged and dropped on node B, then the node will be moved, but the underlying dataset will NOT be updated. Applies to TDBOutline Declaration property DataField: String; Description The DataField property identifies the field from which TDBOutline controls the loading and display of its hierarchical data. DataField represents the key field of the recursive relation defined for the dataset. During drag-and-drop operations, DataField will be used to update the field of the dataset's record identified by the DataFieldRecursive property. After TDBOutline's LoadFromDataSet method is called, DataField will be displayed as the first value in each outline node. The dataset the field is located in is specified in a data source component (TDataSource). The DataSource property of the data-aware control specifies which data source component. Applies to TDBOutline Declaration property DataFieldDisplay: String; Description The DataFieldDisplay property identifies the field which TDBOutline will display after loading its hierarchical data. DataFieldDisplay can be a field in TDBOutline's underlying dataset, or a calculated field. After TDBOutline's LoadFromDataSet method is called, DataFieldDisplay will be displayed as the second value in each outline node, following the value of DataField. The dataset the field is located in is specified in a data source component (TDataSource). The DataSource property of the data-aware control specifies which data source component. urce). The DataSource property of the data-aware control specifies which data source component. Applies to TDBOutline Declaration property DataFieldRecursive: String; Description The DataFieldRecursive property identifies the field which defines the recursive relation from which TDBOutline controls the loading and display of its hierarchical data. DataFieldRecursive represents the referencing field of the recursive relation defined for the dataset. DataFieldRecursive references the field specified in the DataField property of TDBOutine. During drag-and-drop operations, the field in the from-record specified by DataFieldRecursive will be updated with the value of the field in the to-record specified by the DataField property. The dataset the field is located in is specified in a data source component (TDataSource). The DataSource property of the data-aware control specifies which data source component. Applies to TDBOutline Declaration property MasterParent: Boolean; Description The MasterParent property determines whether method LoadFromDataSet will load top-level records as children of a master node, or as top-level nodes. These are the possible values: Value Meaning If True is selected, LoadFromDataSet will load all top-level parent records (i.e., the field represented by DataFieldRecursive is blank) as children of a master parent node. The text of the master node is specified by property MasterParentText. False If False is selected, LoadFromDataSet will load all top-level parent records as top-level outline nodes. taset the field is located in is specified in a data source component (TDataSource). The DataSource property of the data-aware control specifies which data source component. Applies to TDBOutline Declaration property MasterParentText: String; Description The MasterParentText property specifies the text of the master parent node that will be used if the MasterParent property is set to true.l nodes. These are the possible values: Value Meaning If True is selected, LoadFromDataSet will load all top-level parent records (i.e., the field represented by DataFieldRecursive is blank) as children of a master parent node. The text of the master node is specified by property MasterParentText. False If False is selected, LoadFromDataSet will load all top-level parent records as top-level outline nodes. taset the field is located in is specified in a data source component (TDataSource). The DataSource property of the data-aware control specifies which data source component. Applies to TDBOutline Declaration procedure LoadFromDataSet; Description The LoadFromDataSet executes the algorithm that loads recursively-related data from a dataset into the TDBOutline control. The dataset that the data is loaded from is specified in a data source component (TDataSource). The DataSource property of the data-aware control specifies which data source component. The hierarchy is defined to LoadFromDataSet via the DataField and DataFieldRecursive properties of TDBOutline. The data that will be displayed is specified by DataFieldDisplay. LoadFromDataSet will load all top-level parent records as top-level outline nodes. taset the field is located in is specified in a data source component (TDataSource). The DataSource property of the data-aware control specifies which data source component. Applies to TDBOutline Declaration procedure AutoDrop(x, y: integer); Description The AutoDrop method moves the selected TDBOutline node to be either a child or a sibling of the node at screen pixel coordinates X and Y. If dragging was performed with the left mouse button only, the selected node will be made a child of node at X,Y. If the Ctrl key was used with the left mouse button, the selected node will be made a sibling of node at X,Y. All children of the selected node will be moved with it. If the DataAutoSynch method is set to true, the AutoDrop will also move update the field specified by DataFieldRecursive, of the record represented by the selected node, with the content of the field specified by DataField of the record represented by the node at X,Y. Typically, AutoDrop should be called in the OnDragDrop event of the TDBOutline control to enable drag-and-drop manipulation of the hierarchy of the dataset that was loaded into TDBOutline using the LoadFromDataSet method. Applies to TDBOutline Declaration property OnAutoDragDrop: TAutoDragDropEvent; Description The OnAutoDragDrop event occurs whenever the AutoDrop method is called, prior to the execution of the drop. Use the OnAutoDragDrop event handler to specify how TDBOutline should handle the drop of one node onto another. If no event handler exists, TDBOutline will send a default message asking the user if the drop should be performed. If an event handler exists, TDBOutline will only proceed with the drop if the value of Accept is true. Hence, simply setting Accept to true will override the default message, and perform the drop without confirmation from the user. Tip: replace the default confirmation message with one of your own in the OnAutoDragDrop event handler. If the user confirms, set Accept to true; otherwise set Accept to false. The Sender parameter of the OnLoadFromDataSet event is the object calling the event handler. The Accept parameter is a boolean value indicating whether the record should be dropped. The ToNode parameter is the text value of the node being dropped on. The FromNode parameter is the text value of the node being dropped.her a child or a sibling of the node at screen pixel coordinates X and Y. If dragging was performed with the left mouse button only, the selected node will be made a child of node at X,Y. If the Ctrl key was used with the left mouse button, the selected node will be made a sibling of node at X,Y. All children of the selected node will be moved with it. If the DataAutoSynch method is set to true, the AutoDrop will also move update the field specified by DataFieldRecursive, of the record represented by the selected node, with the content of the field specified by DataField of the record represented by the node at X,Y. Typically, AutoDrop should be called in the OnDragDrop event of the TDBOutline control to enable drag-and-drop manipulation of the hierarchy of the dataset that was loaded into TDBOutline using the LoadFromDataSet method. Applies to TDBOutline Declaration property OnLoadFromDataSet: TLoadFromDataSetEvent; Description The OnLoadFromDataSet event occurs whenever the LoadFromDataSet method evaluates a new record for load to TDBOutline. Use the OnLoadFromDataSet event handler to evaluate whether a record should be loaded, and set the value of Accept appropriately. If Accept is set to false, LoadFromDataSet will skip the record. If true, it will add the record as a node. The Sender parameter of the OnLoadFromDataSet event is the object calling the event handler. The Accept parameter is a boolean value indicating whether the record should be loaded. The ToNode parameter is the DataField value of the record being evaluated. by DataField of the record represented by the node at X,Y. Typically, AutoDrop should be called in the OnDragDrop event of the TDBOutline control to enable drag-and-drop manipulation of the hierarchy of the dataset that was loaded into TDBOutline using the LoadFromDataSet method. Welcome to version 1.5 of Maelstrom TDBOutline. This demo program contains 3 TDBOutline components. The source is commented to indicate the areas specific to the use of TDBOutline. We think you'll be astonished at how little code was required--TDBOutline does all the work. Be sure to right-click on the Employees outline to access a popup menu of editing choices. Help has been included in TDBOUTLI.HLP. The version of TDBOutline included with this demo can only be run while Delphi is running. For ordering information, see parent node "About Maelstrom TDBOutline", child node "How to Order TDBOutline", or see ORDER.WRI. ______________________________________ City: __________________________ State: ______________ Postal Code: ___________ Country: __________________________ A copy of TDBOutline must be ordered for each machine on which the program will be used. Your check or money order should be made payable to "Maelstrom Software." # of Copies: __________ x USD $29" The following enhancements are in the planning/development stages: Method to load data from one-many-many... relationships. Property editor to allow the user to define these relationships. Glyph & Font definition at outline levels and by dataset status code. Semi-virtualization -- allow loading of much larger datasets by loading only the top two levels in LoadFromDataSet, and loading child nodes as nodes are expanded. Please let us know of any other improvements you would like to see.trom TDBOutline component for Delphi. If you have a Compuserve account and would prefer to receive TDBOutline through e-mail, Go SWREG ID: 7994. Support is available to registered users through e-mail: Maelstrom Software 85 Fernhill Blvd. Oshawa, Ontario Canada L1J 5J1 CompuServe: 71431,62 Internet: 71431.62@compuserve.com Registered users will be notified of bug fixes, enhancements and new products via e-mail or postal mail--depending on the method by which the user registered. Bug reports and enhancement requests are always welcome. The following enhancements are in the planning/development stages: Method to load data from one-many-many... relationships. Property editor to allow the user to define these relationships. Glyph & Font definition at outline levels and by dataset status code. Semi-virtualization -- allow loading of much larger datasets by loading only the top two levels in LoadFromDataSet, and loading child nodes as nodes are expanded. Please let us know of any other improvements you would like to see.tops in the outline. Method to add new node, corresponding to new record added to database. Currently TOutline's add and addchild methods must be used. Please let us know of any other improvements you would like to see. Overview of Maelstrom TDBOutline. Properties, Methods, Events.line. About Maelstrom TDBOutline. TDBOutline's properties are listed in the children of this node.tionships. Property editor to allow the user to define these relationships. Property that will allow the editing of the hierarchy without saving to the database, and a method to save all changes to the database. Currently, all changes are posted immediately -- the planned modification will allow the user to post or cancel all changes at any point. Tabstops in the outline. Method to add new node, corresponding to new record added to database. Currently TOutline's add and addchild methods must be used. Please let us know of any other improvements you would like to see. Postal Code: ___________ Country: __________________________ A copy of TDBOutline must be ordered for each machine on which the program will be used. Your check or money order should be made payable to "Maelstrom Software." # of Copies: __________ x USD $29.00 = $___________ TOTAL: $___________ If you would like to receiv TDBOutline's events are listed in the children of this node.ode.tionships. Property editor to allow the user to define these relationships. Property that will allow the editing of the hierarchy without saving to the database, and a method to save all changes to the database. Currently, all changes are posted immediately -- the planned modification will allow the user to post or cancel all changes at any point. Tabstops in the outline. Method to add new node, corresponding to new record added to database. Currently TOutline's add and addchild methods must be used. Please let us know of any other improvements you would like to see. Postal Code: ___________ Country: __________________________ A copy of TDBOutline must be ordered for each machine on which the program will be used. Your check or money order should be made payable to "Maelstrom Software." # of Copies: __________ x USD $29.00 = $___________ TOTAL: $___________ If you would like to receiv Applies to TDBOutline Declaration property SynchSuccess: Boolean Description The SynchSuccess read-only property indicates whether the outline control successfully synchronized the database record pointer to the record matching the currently selected outline node. These are the possible values: Value Meaning If True, the record pointer was successfully synchronized with the selected outline node. False If False, the record pointer was not synchronized with the selected outline node, either because a record corresponding to the node could not be found, or because property DataAutoSynch is set to false. would like to see. Postal Code: ___________ Country: __________________________ A copy of TDBOutline must be ordered for each machine on which the program will be used. Your check or money order should be made payable to "Maelstrom Software." # of Copies: __________ x USD $29.00 = $___________ TOTAL: $___________ If you would like to receiv TDBOutline's methods are listed in the children of this node.de.tionships. Property editor to allow the user to define these relationships. Property that will allow the editing of the hierarchy without saving to the database, and a method to save all changes to the database. Currently, all changes are posted immediately -- the planned modification will allow the user to post or cancel all changes at any point. Tabstops in the outline. Method to add new node, corresponding to new record added to database. Currently TOutline's add and addchild methods must be used. Please let us know of any other improvements you would like to see. Postal Code: ___________ Country: __________________________ A copy of TDBOutline must be ordered for each machine on which the program will be used. Your check or money order should be made payable to "Maelstrom Software." # of Copies: __________ x USD $29.00 = $___________ TOTAL: $___________ If you would like to receiv Version 1.5 includes many new enhancements that were requested by registered users of TDBOutline. See child nodes for details.From Delphi's menu, invoke OPTIONS | INSTALL COMPONENTS and install component DBOUTLN.DCU. The DBOutline component will appear on the Data Controls pallet. To run the demo, load and compile DEMO.DPR in delphi. The demo will only run if installed in C:\OUTLDEMO, or if the TDatabase components have their paths modified. o Order TDBOutline", or see ORDER.WRI.ng to new record added to database. Currently TOutline's add and addchild methods must be used. Please let us know of any other improvements you would like to see. Postal Code: ___________ Country: __________________________ A copy of TDBOutline must be ordered for each machine on which the program will be used. Your check or money order should be made payable to "Maelstrom Software."a 30t J_______ Welcome to release 1.5 of the Maelstrom TDBOutline component. TDBOutline is a native VCL Delphi component designed to allow the loading, navigation, and manipulation of hierarchically organized data contained in a database. TDBOutline is a descendant of the TOutline Class, inheriting all TOutline's properties, methods and events. TDBOutline has additional properties, methods and events. See the children of this node for details. phi is running. For ordering information, see parent node "About Maelstrom TDBOutline", child node "How to Order TDBOutline", or see ORDER.WRI. Welcome to version 1.5 of Maelstrom TDBOutline. This demo program contains 3 TDBOutline componets. The source is commented to indicate the areas specific to the use of TDBOutline. We think you'll be astonished at how little code was required--TDBOutline does all the work. Be sure to right-click on the Employees outline to access a popup menu of editing choices. Help has been included in TDBOUTLI.HLP. The version of TDBOutline included with this demo can only be run while Delphi is running. For ordering information, see parent node "About Maelstrom TDBOutline", child node "How to Order TDBOutline", or see ORDER.WRI. STANDARD PARADOX DBASE ASCIIDRV Mass update or mass cancel of drag-drop changes with a single method call. ?o`q?o ?o`q?o ?o`q?o Automatic outline synchronization -- as To install the TDBOutline component, copy all distributed files into a directory of your choice. You may wish to install the following files to a component library (example: \delphi\lib). DBOUTLN.DCU DBOUTLN.RES From Delphi's menu, invoke OPTIONS | INSTALL COMPONENTS and install component DBOUTLN.DCU. The DBOutline component will appear on the Data Controls pallet. To run the demonstration program, load and compile DEMO.DPR in Delphi. To integrate TDBOutline's help file with Delphi, install the KWF file: 1. Make a backup copy if Delphi's master index file, \delphi\bin\delphi.hdx. 2. Copy file TDBOUTLI.HLP to \delphi\bin. 3. Copy file TDBOUTLI.KWF to \delphi\help 4. Run the program HELPINST (installed with Delphi). 5. Open keyword index file \delphi\bin\delphi.hdx. 6. Add keyword file \delphi\help\tdboutli.kwf. 7. Save. Version 1.5 has been modified to prevent the display of DataField within the node text. Resulting from this modification, the Data element of each node is now occupied with information TDBOutline needs to navigate and synchronize the DBOutline. IMPORTANT: the attached data (pointer) of each DBOutline node is now used by TDBOutline, and should not be modified by the programmer. If modification of the attached data is required, version 1.0 should be used. Version 2.0 is planned to include a new data element that the programmer can use.'s master index file, \delphi\bin\delphi.hdx. 2. Copy file TDBOUTLI.HLP to \delphi\bin. 3. Copy file TDBOUTLI.KWF to \delphi\help 4. Run the program HELPINST (installed with Delphi). 5. Open keyword index file \delphi\bin\delphi.hdx. 6. Add keyword file \delphi\help\tdboutli.kwf. 7. Save. Several new methods have been added to facilitate the addition/editing of outline nodes after the initial call to LoadFromDataSet. These methods are AddDBRecord and ChangeDBRecord. an use.'s master index file, \delphi\bin\delphi.hdx. 2. Copy file TDBOUTLI.HLP to \delphi\bin. 3. Copy file TDBOUTLI.KWF to \delphi\help 4. Run the program HELPINST (installed with Delphi). 5. Open keyword index file \delphi\bin\delphi.hdx. 6. Add keyword file \delphi\help\tdboutli.kwf. 7. Save. ?o`q?o ?o`q?o ?o`q?o Version 1.5 has been modified to preve Several new methods have been added to facilitate the addition/editing of outline nodes after the initial call to LoadFromDataSet. These methods are AddDBRecord and ChangeDBRecord. TDBOutline needs to navigate and synchronize the DBOutline. IMPORTANT: the attached data (pointer) of each DBOutline node is now used by TDBOutlin ral new methods have been added to facilitate the addition/editing of outline nodes after the initial call to LoadFromDataSet. These methods are AddDBRecord and ChangeDBRecord. an use.'s master index file, \delphi\bin\delphi.hdx. 2. Copy file TDBOUTLI.HLP to \delphi\bin. 3. Copy file TDBOUTLI.KWF to \delphi\help 4. Run the program HELPINST (installed with Delphi). 5. Open keyword index file \delphi\bin\delphi.hdx. 6. Add keyword file \delphi\help\tdboutli.kwf. 7. Save. A new method has been added to allow the developer to synchronize the DBOutline's selected node to changes in the underlying dataset's selected record: SynchOutline. ngeDBRecord. an use.'s master index file, \delphi\bin\delphi.hdx. 2. Copy file TDBOUTLI.HLP to \delphi\bin. 3. Copy file TDBOUTLI.KWF to \delphi\help 4. Run the program HELPINST (installed with Delphi). 5. Open keyword index file \delphi\bin\delphi.hdx. 6. Add keyword file \delphi\help\tdboutli.kwf. 7. Save. ?o`q?o ?o`q?o ?o`q?o Several new methods have been added to A new property has been added, DataAutoUpdate, that specifies if drag-drop changes should be immediately posted to the dataset or not. In conjunction with this new property, a method has been added, UpdateDraggedNodes, that will post all un-posted drag-drop changes to the dataset. This allows the manipulation of the DBOutline's structure without changing the dataset. The modifications to the hierarchy can be saved with a call to UpdateDraggedNodes, or abandoned with a call to LoadFromDataSet.rd: SynchOutline. ngeDBRecord. an use.'s master index file, \delphi\bin\delphi.hdx. 2. Copy file TDBOUTLI.HLP to \delphi\bin. 3. Copy file TDBOUTLI.KWF to \delphi\help 4. Run the program HELPINST (installed with Delphi). 5. Open keyword index file \delphi\bin\delphi.hdx. 6. Add keyword file \delphi\help\tdboutli.kwf. 7. Save. In keeping with the above change, AutoDrop has been modified to post drag-drop changes to the dataset only if DataAutoUpdate is True. romDataSet.rd: SynchOutline. ngeDBRecord. an use.'s master index file, \delphi\bin\delphi.hdx. 2. Copy file TDBOUTLI.HLP to \delphi\bin. 3. Copy file TDBOUTLI.KWF to \delphi\help 4. Run the program HELPINST (installed with Delphi). 5. Open keyword index file \delphi\bin\delphi.hdx. 6. Add keyword file \delphi\help\tdboutli.kwf. 7. Save. ?o`q?o ?o`q?o ?o`q?o A new property has been added, DataAut Improved support for TQueries has been added. DataAutoSynch will now work with a TQuery. All other functionality also works with TQuery, provided the TQuery is capable of being updated. n added, UpdateDraggedNodes, that will post all un-posted drag-drop changes to the dataset. This allows the manipulation of the DBOutline's st eeping with the above change, AutoDrop has been modified to post drag-drop changes to the dataset only if DataAutoUpdate is True. romDataSet.rd: SynchOutline. ngeDBRecord. an use.'s master index file, \delphi\bin\delphi.hdx. 2. Copy file TDBOUTLI.HLP to \delphi\bin. 3. Copy file TDBOUTLI.KWF to \delphi\help 4. Run the program HELPINST (installed with Delphi). 5. Open keyword index file \delphi\bin\delphi.hdx. 6. Add keyword file \delphi\help\tdboutli.kwf. 7. Save. A new property has been added to prevent the display of the default error message if a cyclical drag-drop is attempted: IgnoreCyclicalDrops. Set.rd: SynchOutline. ngeDBRecord. an use.'s master index file, \delphi\bin\delphi.hdx. 2. Copy file TDBOUTLI.HLP to \delphi\bin. 3. Copy file TDBOUTLI.KWF to \delphi\help 4. Run the program HELPINST (installed with Delphi). 5. Open keyword index file \delphi\bin\delphi.hdx. 6. Add keyword file \delphi\help\tdboutli.kwf. 7. Save. ?o`q?o ?o`q?o ?o`q?o Improved support for TQueries has been Improved index support has been provided. The DataAutoSynch mechanism will now maintain the initial index of the dataset, switching to an index with primary key DataField as needed, then switching back.ateDraggedNodes, that will post all un-posted drag-drop changes to the dataset. This allows the manipulation of the DBOutline's st w property has been added to prevent the display of the default error message if a cyclical drag-drop is attempted: IgnoreCyclicalDrops. Set.rd: SynchOutline. ngeDBRecord. an use.'s master index file, \delphi\bin\delphi.hdx. 2. Copy file TDBOUTLI.HLP to \delphi\bin. 3. Copy file TDBOUTLI.KWF to \delphi\help 4. Run the program HELPINST (installed with Delphi). 5. Open keyword index file \delphi\bin\delphi.hdx. 6. Add keyword file \delphi\help\tdboutli.kwf. 7. Save. Applies to TDBOutline Declaration property IgnoreCyclicalDrops: Boolean; Description The IgnoreCyclicalDrops property indicates whether a default error message will be displayed if a cyclical drag-drop operation is attempted. A cyclical drag-drop is one in which a node is dropped onto itself, or one of its child nodes. A cyclical drop will not be performed regardless of the value of IgnoreCyclicalDrops -- the property only controls whether or not the error message is displayed. Value Meaning True If True is selected, and a cyclical drag-drop occurs, no error message will be displayed. False If False is selected, and a cyclical drag-drop occurs, a default error message will display.agged nodes that have not yet been updated (provided DataAutoSynch is True). Value Meaning True If True is selected, and method AutoDrop is called in the OnDrop event of the DBOutline, the dragged node's underlying dataset record's DataFieldRecursive field will be updated to contain the valu Applies to TDBOutline Declaration property DataSource: TDataSource; Description The DataSource property determines where the component obtains the data to display. Specify the data source component that identifies the dataset the data is found in.I.HLP to \delphi\bin. 3. Copy file TDBOUTLI.KWF to \delphi\help 4. Run the program HELPINST (installed with Delphi). 5. Open keyword index file \delphi\bin\delphi.hdx. 6. Add keyword file \delphi\help\tdboutli.kwf. 7. Save. ?o`q?o ?o`q?o ?o`q?o Improved index support has been provid Applies to TDBOutline Declaration property DataAutoUpdate: Boolean; Description The DataAutoUpdate property may only be True if the DataAutoSynch property is also True. DataAutoUpdate determines whether the underlying dataset will be automatically updated when method AutoDrop is called. AutoDrop is typically called after a drag-drop move of a node to another node. Hence DataAutoUpdate determines whether the dragged node's underlying dataset record will have its DataFieldRecursive field automatically updated to contain the value of the dropped-on node's underlying dataset record's DataField field. If DataAutoUpdate is false, method UpdateDraggedNodes can be called to perform the update of all dragged nodes that have not yet been updated (provided DataAutoSynch is True). Value Meaning True If True is selected, and method AutoDrop is called in the OnDrop event of the DBOutline, the dragged node's underlying dataset record's DataFieldRecursive field will be updated to contain the value of the dropped-on node's underlying dataset record's DataField field. False If False is selected, the above update will not automatically occur when AutoDrop is called. Instead, method UpdateDraggedNodes will have to be called to perform the update.e dragged node's underlying dataset record's DataFieldRecursive field will be updated to contain the value of the dropped-on node's underlying dataset record's DataField field. False If False is selected, the above update will not automatically occur when AutoDrop is called. Instead, method UpdateDraggedNodes will have to be called to perform the update.Copy file TDBOUTLI.HLP to \delphi\bin. 3. Copy file TDBOUTLI.KWF to \delphi\help 4. Run the program HELPINST (installed with Delphi). 5. Open keyword index file \delphi\bin\delphi.hdx. 6. Add keyword file \delphi\help\tdboutli.kwf. 7. Save. Applies to TDBOutline Declaration property SynchSuccess: Boolean; Description The SynchSuccess property is a Read-only property that indicates if the last attempt by TDBOutline to synchronize the dataset pointer to the selected DBOutline node was successful. If SynchSuccess is True, the DBOutline component was able to synchronize the dataset, otherwise it was unable to synchronize. SynchSuccess can be evaluated at runtime to determine if the record corresponding to the selected outline was found. SynchSuccess can only be True if DataAutoSynch is True. SynchSuccess will always be False when a MasterParent node is selected, because there is no corresponding dataset record. ?o`q?o Applies to TDBOutline Declaration property DataAuto Applies to TDBOutline Declaration procedure SynchOutline(Sender: TObject); Description The SynchOutline method changes the selected DBOutline node to match the currently selected dataset record. See Synchronizing the DBOutline for details on usage.rlying dataset record's DataFieldRecursive field will be updated to contain TDBOutline Declaration property SynchSuccess: Boolean; Description The SynchSuccess property is a Read-only property that indicates if the last attempt by TDBOutline to synchronize the dataset pointer to the selected DBOutline node was successful. If SynchSuccess is True, the DBOutline component was able to synchronize the dataset, otherwise it was unable to synchronize. SynchSuccess can be evaluated at runtime to determine if the record corresponding to the selected outline was found. SynchSuccess can only be True if DataAutoSynch is True. SynchSuccess will always be False when a MasterParent node is selected, because there is no Applies to TDBOutline Declaration procedure UpdateDraggedNodes(Sender: TObject); Description The UpdateDraggedNodes method is used to post all outstanding drag-drop changes to the dataset. Drag-drop changes are outstanding if they have not been saved to the dataset. UpdateDraggedNodes is only functional if DataAutoSynch is True. If DataAutoUpdate is also True, drag-drop changes will always be posted to the dataset immediately, and UpdateDraggedNodes will have no effect (as there will be no outstanding changes to update). See Manipulating the hierarchy via drag-and-drop for more details.hen a MasterParent node is selected, because there is no corresp@ ?o`q?o ?o`q?o Applies to TDBOutline Declaration Applies to TDBOutline Declaration procedure AddDBRecord(NewDataField: string; NewDataFieldDisplay: string; NewDataFieldRecursive: string); Description The AddDBRecord method is designed to add a new dataset record to the DBOutline. This method takes care of the pointers required to maintain DBOutline <-> dataset synchronization through DataAutoSynch and SynchOutline. The new node is added as a child node of the currently selected DBOutline node. The NewDataField parameter corresponds to the DataField field of the record to be added. NewDataFieldDisplay corresponds to the DataFieldDisplay field of the record to be added. NewDataFieldRecursive corresponds to the DataFieldRecursive field of the record to be added. Note: Adding nodes to a DBOutline by any other method (i.e. by the inherited Add or AddChild methods) will disable synchronization for the added node. Modifying the attached data of an outline node via any means will also disable synchronization for the modified node, and may prevent synchronization for all nodes. Applies to TDBOutline Declaration procedure ChangeDBRecord(FromDataField: string; ToDataField: string; ToDataFieldDisplay: string); Description The ChangeDBRecord method is designed to change the contents of a node and its data to reflect a change in the underlying dataset record. This method takes care of the pointers required to maintain DBOutline <-> dataset synchronization through DataAutoSynch and SynchOutline. The FromDataField parameter corresponds to the DataField field of the record prior to the change. ToDataFieldDisplay corresponds to the DataField field of the record after the change. ToDataFieldDisplay corresponds to the DataFieldDisplay field of the record after the change. DataFieldRecursive is not updated via this method. Use AutoDrop to modify DataFieldRecursive. Note: Changing the DataField value of a node by any other method will disable synchronization for the changed node. Modifying the attached data of an outline node via any means will also disable synchronization for the modified node, and may prevent synchronization for all nodes. Maelstrom TDBOutline Order Form Maelstrom TDBOutline may be ordered through the Shareware Registration System on CompuServe. CompuServe: SWREG ID: 8635 Please note that Maelstrom Software does not accept Credit Card Orders. To order direct, please mail a copy of this order form, along with your check or money order to: Maelstrom Software 85 Fernhill Blvd Oshawa, Ontario Canada L1J 5J1 Please type or print clearly: Name: _____________________________________________________________________ Company (if applicable): ______________________________________________________ Mailing Address: ____________________________________________________________ City: __________________________ State: ______________ Postal Code: ___________ Country: __________________________ A copy of TDBOutline must be ordered for each machine on which the program will be used. Your check or money order should be made payable to "Maelstrom Software." # of Copies: __________ x USD $39.00 = $___________ TOTAL: $___________ If you would like to receive notice of future upgrades and new Maelstrom product releases via e-mail, please include your Internet or CompuServe e-mail address: __________________________ How did you hear about Maelstrom TDBOutline? __________________________________ You will receive a 3.5" disk through the Mail upon receipt of order. Please write or send Internet e-mail to 71431.62@compuserve.com to check status or ask questions. Thank you for ordering the Maelstrom TDBOutline component for Delphi. If you have a Compuserve account and would prefer to receive TDBOutline through e-mail, Go SWREG ID: 8635 Maelstrom TDBOutline v1.5 Order Form Maelstrom TDBOutline v1.5 may be ordered through the Shareware Registration System on CompuServe. CompuServe: SWREG ID: 8635 Please note that Maelstrom Software does not accept Credit Card Orders. To order direct, please mail a copy of this order form, along with your check or money order to: Maelstrom Software 85 Fernhill Blvd Oshawa, Ontario Canada L1J 5J1 Please type or print clearly: Name: _____________________________________________________________________ Company (if applicable): ______________________________________________________ Mailing Address: ____________________________________________________________ City: __________________________ State: ______________ Postal Code: ___________ Country: __________________________ A copy of TDBOutline must be ordered for each machine on which the program will be used. Your check or money order should be made payable to "Maelstrom Software." # of Copies: __________ x USD $39.00 = $___________ TOTAL: $___________ If you would like to receive notice of future upgrades and new Maelstrom product releases via e-mail, please include your Internet or CompuServe e-mail address: __________________________ How did you hear about Maelstrom TDBOutline? __________________________________ You will receive a 3.5" disk through the Mail upon receipt of order. Please write or send Internet e-mail to 71431.62@compuserve.com to check status or ask questions. Thank you for ordering the Maelstrom TDBOutline component for Delphi. If you have a Compuserve account and would prefer to receive TDBOutline through e-mail, Go SWREG ID: 8635 erty specifies the text of the master parent node that will be used if the MasterParent property is set to true. Define events required for manipulating the hierarchy. Watch for this upcoming Maelstrom release. 34t